One of the difficult problems in an embedded world is to keep track of very accurate time. Time is universal and constant across all devices on or near earth. Keeping track of time accurately would allow distributed systems naturally stay in synchronization. Network time protocol (NTP) is a mechanism that would allow computers or devices connected over a network to retrieve time across the network from a NTP server. If a NTP server can stay within microsecond level accuracy, the computers would be a millisecond accuracy due to unpredictable network latency.
Proprietary devices such as those used to implement NTP servers lack general use. Such proprietary devices are in general very expensive. Most approaches require software to be designed to propagate the time. Unfortunately, the more instructions have to be executed, the more latency would be introduced thus degrade the accuracy. Also, the more the software gets involved the more it is susceptible to preemption by an operating system (OS) scheduler thus introduce further delay. Many such devices are based on low bandwidth serial interfaces (e.g., RS-232), which are slow in general.